home *** CD-ROM | disk | FTP | other *** search
/ PC Format (UK) 188 / 01-04 PC Format 188 [2006-06] DVD side 1_.iso / DiscContents / Workshops / Workshops_Games / Sphere / InstallSphere1.0.exe / games / FG_nosphere / scripts / map.js < prev    next >
Text File  |  2003-02-18  |  3KB  |  168 lines

  1. function drawLoop()
  2. {
  3.     if (system.actions.length > 0)
  4.     {
  5.         if (system.actions[0].type == "Message")
  6.         {
  7.             drawMessage(system.actions[0]);
  8.         }
  9.     }
  10. }
  11.  
  12. function updateLoop()
  13. {
  14.     if (system.actions.length > 0)
  15.     {
  16.         if (system.actions[0].type == "Message")
  17.         {
  18.             if (!system.actions[0].active)
  19.             {
  20.                 system.actions[0].active = true;
  21.                 system.actions[0].time = GetTime();
  22.                 DetachInput();
  23.             }
  24.             updateMessage(system.actions[0]);
  25.         }
  26.     }
  27.     // Check for poison!
  28. }
  29.  
  30. // Message functions
  31. // Draws message on screen
  32. function drawMessage(message)
  33. {
  34.     window.drawWindow(12, 28, 296, 48, "MESSAGE");
  35.     if (message.speaker == undefined)
  36.     {
  37.         font.messageText(12, 28, 296, 48, message.text.substr(0, message.current), message.thought);
  38.     }
  39.     else if (message.speaker != undefined)
  40.     {
  41.         font.drawText(12, 28, message.speaker);
  42.         font.messageText(12, 40, 296, 36, message.text.substr(0, message.current), message.thought);
  43.     }
  44.     if (message.done)
  45.     {
  46.         font.littleText(286, 76, "NEXT");
  47.     }
  48. }
  49.  
  50. // Updates message
  51. function updateMessage(message)
  52. {
  53.     if (!message.done)
  54.     {
  55.         if (message.current < message.lastSpace)
  56.         {
  57.             var letters = Math.floor((GetTime() - message.time) / system.fieldMessageSpeed);
  58.             if (letters > 0)
  59.             {
  60.                 message.current += letters;
  61.                 if (message.current >= message.lastSpace)
  62.                 {
  63.                     message.current = message.lastSpace;
  64.                     message.done = true;
  65.                 }
  66.                 message.time = GetTime();
  67.             }
  68.         }
  69.     }
  70. }
  71.  
  72. // Continues message
  73. function continueMessage(message)
  74. {
  75.     if (message.done)
  76.     {
  77.         if (message.lastSpace < message.text.length)
  78.         {
  79.             message.text = message.text.substr(message.lastSpace + 1);
  80.             message.current = 0;
  81.             message.lastSpace = getSpaces(message.text, message.h);
  82.             message.done = false;
  83.             message.time = GetTime();
  84.         }
  85.         else
  86.         {
  87.             system.actions.shift();
  88.             if (system.actions.length == 0)
  89.             {
  90.                 AttachInput("Player");
  91.             }
  92.         }
  93.     }
  94. }
  95.  
  96. // Places message into message queue
  97. function addMessage(text, speaker, thought)
  98. {
  99.     var message = new Object();
  100.     message.text = "\"" + text + "\"";
  101.     message.current = 0;
  102.     message.done = false;
  103.     message.active = false;
  104.     message.speaker = speaker;
  105.     message.thought = thought;
  106.     message.time = 0;
  107.     if (speaker != undefined)
  108.     {
  109.          message.h = 36;
  110.     }
  111.     else
  112.         message.h = 48;
  113.     message.lastSpace = getSpaces(message.text, message.h);
  114.     message.type = "Message";
  115.     system.actions[system.actions.length] = message;
  116. }
  117.  
  118. function AcceptKey()
  119. {
  120.     if (system.actions.length > 0)
  121.     {
  122.         if (system.actions[0].done && system.actions[0].type == "Message")
  123.         {
  124.             continueMessage(system.actions[0]);
  125.         }
  126.     }
  127. }
  128.  
  129. function getSpaces(text, h)
  130. {
  131.     var spaces = new Array();
  132.     var lastSpace = 0;
  133.     for (var i = 0; i < text.length; i ++)
  134.     {
  135.         if (text.substr(i, 1) == " ")
  136.         {
  137.             spaces[spaces.length] = i;
  138.         }
  139.     }
  140.     for (var i = 0; i < spaces.length; i ++)
  141.     {
  142.         if (font.main.getStringHeight(text.substr(0, spaces[i]), 296) > h)
  143.         {
  144.             lastSpace = spaces[i - 1];
  145.             break;
  146.         }
  147.     }
  148.     if (lastSpace == 0)
  149.     {
  150.         lastSpace = text.length;
  151.     }
  152.     return lastSpace;
  153. }
  154.  
  155. function Say(id)
  156. {
  157.     var file = OpenFile("text.dat");
  158.     addMessage(file.read("D" + id + ":Text", ""), file.read("D" + id + ":Speaker", ""), file.read("D" + id + ":Thought", 0));
  159. }
  160.  
  161. function isReady()
  162. {
  163.     if (system.actions.length == 0)
  164.     {
  165.         return true;
  166.     }
  167.     return false;
  168. }